package main

import "fmt"

func main() {
	var ch1 = make(chan int, 10)
	for i := 1; i <= 10; i++ {
		ch1 <- i
	}
	// 需要先关闭管道
	close(ch1)
	// 循环遍历输出管道
	for v := range ch1 {
		fmt.Println(v)
	}
	// 直接这样写，在遍历结束后就会报错：fatal error: all goroutines are asleep - deadlock!

	fmt.Println("=========================================================================")
	var ch2 = make(chan int, 10)
	for j := 1; j <= 10; j++ {
		ch2 <- j
	}
	// 直接手写for循环，不会报错
	for k := 1; k <= 10; k++ {
		fmt.Println(<-ch2)
	}
}
